import type { DepartData, Image, OrderDetail, OrderListData, OrderParams, OrderPreData, OrderPreParams, OrderQuery, PayParams, RateParams } from "@/types/consult"
import { request } from "@/utils/request"


/**
 * 医生科室列表
 */
export const departmentListApi = () => {
    return request.get<null, DepartData[]>('/dep/all')
}

/**
 * 上传图片
 */
export const uploadImageApi = (filePath: string) => {
    return request.upload<null, Image>("/upload", {
        name: "file",
        filePath
    })
}

/**
 * 获取预支付订单信息
 */
export const preOrderApi = (params: OrderPreParams) => {
    return request.get<null, OrderPreData>('/patient/consult/order/pre', {
        params
    })
}

/**
 * 生成问诊订单
 */
export const createOrderApi = (data: OrderParams) => {
    return request.post<null, { id: string }>('/patient/consult/order', data)
}

/**
 * 三方支付（暂时只支持支付宝支付）
 */
export const orderPayApi = (data: PayParams) => {
    return request.post<null, { payUrl: string }>('/patient/consult/pay', data)
}


/**
 * 问诊订单详情
 */
export const orderDetailApi = (orderId: string) => {
    return request.get<null, OrderDetail>('/patient/consult/order/detail', { params: { orderId } })
}

/**
 * 评价医生
 */
export const evaluateDoctorApi = (data: RateParams) => {
    return request.post('/patient/order/evaluate', data)
}

/**
 * 医生问诊列表
 */
export const orderListApi = (data: OrderQuery) => {
    return request.get<null, OrderListData>('/patient/consult/order/list', { params: data })
}

/**
 * 取消订单
 */
export const cancelOrderApi = (id: string) => request.put(`/patient/order/cancel/${id}`)

/**
 * 删除订单
 */
export const deleteOrderApi = (id: string) => request.delete(`/patient/order/${id}`)